package org.ds.json;

import com.google.gson.Gson;

import java.lang.reflect.Type;

/**
 * @author Daniel
 */
public class JsonParser {
    private static final Gson gson = new Gson();

    /**
     * 将对象转为JSON 字符串
     *
     * @param o 源对象
     * @return 转换完成的字符串
     */
    public static String toJson(Object o) {
        return gson.toJson(o);
    }

    /**
     * 将JSON字符串转为对象
     *
     * @param jsonStr json字符串
     * @param clz     对象class
     * @param <T>     对象类型
     * @return 转换完成的对象
     */
    public static <T> T formJson(String jsonStr, Class<T> clz) {
        return gson.fromJson(jsonStr, clz);
    }

    /**
     * 将JSON字符串转为对象
     *
     * @param jsonStr json字符串
     * @param typeOfT    对象Type
     * @param <T>     对象类型
     * @return 转换完成的对象
     */
    public static <T> T formJson(String jsonStr, Type typeOfT) {
        return gson.fromJson(jsonStr, typeOfT);
    }
}
